package com.zb.uniman.time;

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.core.lang.Console;
import cn.hutool.http.HttpUtil;
import com.zb.uniman.utils.JwtUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import java.util.Base64;

/**
 * Author:B
 * Description:
 */
@SpringBootTest
public class utilstest {


    /**
     * Base64的使用    “string”--字节 ---加密---string
     * string---解密---字节---“string”
     *
     * @throws Exception
     */
    @Test
    public void test02() throws Exception {
        // 加密
        String base64encodedString = Base64.getEncoder().encodeToString("百度搜索：程序员Hsq".getBytes("utf-8"));
        System.out.println("加密字符串 :" + base64encodedString);
        // 解码
        byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
        System.out.println("原本字符串: " + new String(base64decodedBytes, "utf-8"));

//        在Java中，byte类型的数据是8位带符号的二进制数。

    }

    @Test
    public void test03() {
        //GET请求
        String content = HttpUtil.get("https://www.jd.com/");
//        System.out.println(content);

    }

    @Test
    public void test04() {

//定义图形验证码的长和宽
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);

//图形验证码写出，可以写出到文件，也可以写出到流
        lineCaptcha.write("D:\\B-project\\UniMan\\src\\main\\resources\\line1.png");
//输出code
        Console.log(lineCaptcha.getCode());
//验证图形验证码的有效性，返回boolean值
//        boolean verify = lineCaptcha.verify("1234");
//        System.out.println(verify);
//
////重新生成验证码

//        lineCaptcha.createCode();
//        lineCaptcha.write("./line.png");
////新的验证码
//        Console.log(lineCaptcha.getCode());
////验证图形验证码的有效性，返回boolean值
//        lineCaptcha.verify("1234");

    }

    /**
     * seh
     * @throws
     */
    @Test
    void testjwt() throws Exception {
        String token = JwtUtil.createJWT(1+"");
        System.out.println(token);
    }

    /**
     * String.format()使用
     */
    @Test
    void testformat(){
        String format = String.format("这是我的学校%s：", "中北大学");
        System.out.println(String.format("这是我的学校%s：","中北大学"));
        String str=null;
        str=String.format("Hi,%s", "小超");
        System.out.println(str);
        str=String.format("Hi,%s %s %s", "小超","是个","大帅哥");
        System.out.println(str);
        System.out.printf("字母c的大写是：%c %n", 'C');
        System.out.printf("布尔结果是：%b %n", "小超".equals("帅哥"));
        System.out.printf("100的一半是：%d %n", 100/2);
    }

    /**
     * hello
     * java.lang.ArithmeticException: / by zero
     * finally
     */
    @Test
    void testfinally(){
        try {
            System.out.println("hello");
            System.out.println(10/0);
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            System.out.println("finally");
        }
    }
    @Test
    void teststarter(){
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        String encode = encoder.encode("123456");
        System.out.println(encode);
    }
}
